\hypertarget{operateurs_8c}{\section{\-Référence du fichier /\-Users/antoinelavail/\-Documents/workspace/emulateur-\/procsi-\/c/src/operateurs.c}
\label{operateurs_8c}\index{/\-Users/antoinelavail/\-Documents/workspace/emulateur-\/procsi-\/c/src/operateurs.\-c@{/\-Users/antoinelavail/\-Documents/workspace/emulateur-\/procsi-\/c/src/operateurs.\-c}}
}
{\ttfamily \#include $<$stdio.\-h$>$}\*
{\ttfamily \#include $<$stdlib.\-h$>$}\*
{\ttfamily \#include \char`\"{}fonctions.\-h\char`\"{}}\*
\-Graphe des dépendances par inclusion de operateurs.\-c\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{operateurs_8c__incl}
\end{center}
\end{figure}
\subsection*{\-Fonctions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{operateurs_8c_a5325bc7f9174f0872485cde3999f38c0}{add} (short $\ast$reg, short $\ast$memd, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_ae0fe81a753b575de6aa60d6ee0ff872e}{\-P\-C}, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_a58fa6b74b97de234c6883dadf28b3de0}{\-S\-R})
\item 
void \hyperlink{operateurs_8c_a67f196dd3656c5cbbe64452cca2873eb}{sub} (short $\ast$reg, short $\ast$memd, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_ae0fe81a753b575de6aa60d6ee0ff872e}{\-P\-C}, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_a58fa6b74b97de234c6883dadf28b3de0}{\-S\-R})
\item 
void \hyperlink{operateurs_8c_a1c72b01e4b774b393955154c535df792}{load} (short $\ast$reg, short $\ast$memd, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_ae0fe81a753b575de6aa60d6ee0ff872e}{\-P\-C})
\item 
void \hyperlink{operateurs_8c_ae9ded52abc61782c5d82b95b2801ced5}{store} (short $\ast$reg, short $\ast$memd, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_ae0fe81a753b575de6aa60d6ee0ff872e}{\-P\-C})
\item 
void \hyperlink{operateurs_8c_ad4a547436e049812a3cb2acf6681ec87}{push} (short $\ast$reg, short $\ast$memd, short $\ast$pil\-E, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_ae0fe81a753b575de6aa60d6ee0ff872e}{\-P\-C}, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_a3ee7622d5fd5bd07e98fa09d595db886}{\-S\-P})
\item 
void \hyperlink{operateurs_8c_a95c5f30e9a4f1d5b07108b1da2ac1ce6}{pop} (short $\ast$reg, short $\ast$memd, short $\ast$pil\-E, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_ae0fe81a753b575de6aa60d6ee0ff872e}{\-P\-C}, short $\ast$\hyperlink{emulateur_p_r_o_c_s_i_8c_a3ee7622d5fd5bd07e98fa09d595db886}{\-S\-P})
\item 
char $\ast$ \hyperlink{operateurs_8c_a39a96e4bd19cf6e145f28d23b921e5de}{code\-To\-Registre} (short code)
\end{DoxyCompactItemize}


\subsection{\-Documentation des fonctions}
\hypertarget{operateurs_8c_a5325bc7f9174f0872485cde3999f38c0}{\index{operateurs.\-c@{operateurs.\-c}!add@{add}}
\index{add@{add}!operateurs.c@{operateurs.\-c}}
\subsubsection[{add}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf add} (
\begin{DoxyParamCaption}
\item[{short $\ast$}]{reg, }
\item[{short $\ast$}]{memd, }
\item[{short $\ast$}]{\-P\-C, }
\item[{short $\ast$}]{\-S\-R}
\end{DoxyParamCaption}
)}}\label{operateurs_8c_a5325bc7f9174f0872485cde3999f38c0}
\-Fonction \-A\-D\-D \-: \-Ajoute au registre destination la valeur indiqu�e et stocke le r�sultat dans le registre destination.

\-Fonctionne dans quatre modes diff�rents \-:
\begin{DoxyItemize}
\item \-Registre-\/\-Registre
\item \-Registre-\/\-Imm�diat
\item \-Registre-\/\-Direct
\item \-Registre-\/\-Indirect \-Les modes \-Registre-\/\-Imm�diat et \-Registre-\/\-Direct peuvent contenir deux ou trois mots.
\end{DoxyItemize}

\-Param�tres \-: + reg \-: r�f�rence au banc de registres. \-D�clar� et initialis� dans le main. + memd \-: r�f�rence � la m�moire de donn�es. \-D�clar� et initialis� dans le main. + \-P\-C \-: r�f�rence � l'adresse de l'instruction en cours d'execution. + \-S\-R \-: r�f�rence au r�sultat de la derni�re op�ration de calcul \hypertarget{operateurs_8c_a39a96e4bd19cf6e145f28d23b921e5de}{\index{operateurs.\-c@{operateurs.\-c}!code\-To\-Registre@{code\-To\-Registre}}
\index{code\-To\-Registre@{code\-To\-Registre}!operateurs.c@{operateurs.\-c}}
\subsubsection[{code\-To\-Registre}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ {\bf code\-To\-Registre} (
\begin{DoxyParamCaption}
\item[{short}]{code}
\end{DoxyParamCaption}
)}}\label{operateurs_8c_a39a96e4bd19cf6e145f28d23b921e5de}
\hypertarget{operateurs_8c_a1c72b01e4b774b393955154c535df792}{\index{operateurs.\-c@{operateurs.\-c}!load@{load}}
\index{load@{load}!operateurs.c@{operateurs.\-c}}
\subsubsection[{load}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf load} (
\begin{DoxyParamCaption}
\item[{short $\ast$}]{reg, }
\item[{short $\ast$}]{memd, }
\item[{short $\ast$}]{\-P\-C}
\end{DoxyParamCaption}
)}}\label{operateurs_8c_a1c72b01e4b774b393955154c535df792}
\-Fonction \-L\-O\-A\-D \-: \-Charge dans le registre destination la valeur indiqu�e.

\-Fonctionne dans trois modes diff�rents \-:
\begin{DoxyItemize}
\item \-Registre-\/\-Imm�diat
\item \-Registre-\/\-Direct
\item \-Registre-\/\-Indirect \-Les modes \-Registre-\/\-Imm�diat et \-Registre-\/\-Direct peuvent contenir deux ou trois mots.
\end{DoxyItemize}

\-Param�tres \-: + reg \-: r�f�rence au banc de registres. \-D�clar� et initialis� dans le main. + memd \-: r�f�rence � la m�moire de donn�es. \-D�clar� et initialis� dans le main. + \-P\-C \-: r�f�rence � l'adresse de l'instruction en cours d'execution. \hypertarget{operateurs_8c_a95c5f30e9a4f1d5b07108b1da2ac1ce6}{\index{operateurs.\-c@{operateurs.\-c}!pop@{pop}}
\index{pop@{pop}!operateurs.c@{operateurs.\-c}}
\subsubsection[{pop}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf pop} (
\begin{DoxyParamCaption}
\item[{short $\ast$}]{reg, }
\item[{short $\ast$}]{memd, }
\item[{short $\ast$}]{pil\-E, }
\item[{short $\ast$}]{\-P\-C, }
\item[{short $\ast$}]{\-S\-P}
\end{DoxyParamCaption}
)}}\label{operateurs_8c_a95c5f30e9a4f1d5b07108b1da2ac1ce6}
\-Fonction \-P\-O\-P \-: \-D�pile une valeur de la pile pour la placer dans l'op�rande.

\-Remarque \-: \-La pile cro�t dans le sens des adresses d�croissantes.

\-Fonctionne dans trois modes diff�rents \-:
\begin{DoxyItemize}
\item \-Registre
\item \-Direct
\item \-Indirect
\end{DoxyItemize}

\-Param�tres \-: + reg \-: r�f�rence au banc de registres. \-D�clar� et initialis� dans le main. + pil\-E \-: r�f�rence � la pile d'ex�cution. \-D�clar� et initialis� dans le main. + \-P\-C \-: r�f�rence � l'adresse de l'instruction en cours d'execution. + \-S\-P \-: r�f�rence � l'adresse du sommet de la pile d'execution. \hypertarget{operateurs_8c_ad4a547436e049812a3cb2acf6681ec87}{\index{operateurs.\-c@{operateurs.\-c}!push@{push}}
\index{push@{push}!operateurs.c@{operateurs.\-c}}
\subsubsection[{push}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf push} (
\begin{DoxyParamCaption}
\item[{short $\ast$}]{reg, }
\item[{short $\ast$}]{memd, }
\item[{short $\ast$}]{pil\-E, }
\item[{short $\ast$}]{\-P\-C, }
\item[{short $\ast$}]{\-S\-P}
\end{DoxyParamCaption}
)}}\label{operateurs_8c_ad4a547436e049812a3cb2acf6681ec87}
\-Fonction \-P\-U\-S\-H \-: \-Empile la valeur de l'op�rande sur la pile d'execution.

\-Remarque \-: \-La pile cro�t dans le sens des adresses d�croissantes.

\-Fonctionne dans quatre modes diff�rents \-:
\begin{DoxyItemize}
\item \-Registre
\item \-Imm�diat
\item \-Direct
\item \-Indirect
\end{DoxyItemize}

\-Param�tres \-: + reg \-: r�f�rence au banc de registres. \-D�clar� et initialis� dans le main. + pil\-E \-: r�f�rence � la pile d'ex�cution. \-D�clar� et initialis� dans le main. + \-P\-C \-: r�f�rence � l'adresse de l'instruction en cours d'execution. + \-S\-P \-: r�f�rence � l'adresse du sommet de la pile d'execution. \hypertarget{operateurs_8c_ae9ded52abc61782c5d82b95b2801ced5}{\index{operateurs.\-c@{operateurs.\-c}!store@{store}}
\index{store@{store}!operateurs.c@{operateurs.\-c}}
\subsubsection[{store}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf store} (
\begin{DoxyParamCaption}
\item[{short $\ast$}]{reg, }
\item[{short $\ast$}]{memd, }
\item[{short $\ast$}]{\-P\-C}
\end{DoxyParamCaption}
)}}\label{operateurs_8c_ae9ded52abc61782c5d82b95b2801ced5}
\-Fonction \-S\-T\-O\-R\-E \-: \-Sauvegarde dans la destination la valeur indiqu�e dans la source.

\-Fonctionne dans quatre modes diff�rents \-:
\begin{DoxyItemize}
\item \-Direct-\/\-Imm�diat
\item \-Direct-\/\-Registre
\item \-Indirect-\/\-Imm�diat
\item \-Indirect-\/\-Registre \-Les modes \-Direct-\/\-Registre et \-Indirect-\/\-Imm�diat peuvent contenir deux ou trois mots.
\end{DoxyItemize}

\-Param�tres \-: + reg \-: r�f�rence au banc de registres. \-D�clar� et initialis� dans le main. + memd \-: r�f�rence � la m�moire de donn�es. \-D�clar� et initialis� dans le main. + \-P\-C \-: r�f�rence � l'adresse de l'instruction en cours d'execution. \hypertarget{operateurs_8c_a67f196dd3656c5cbbe64452cca2873eb}{\index{operateurs.\-c@{operateurs.\-c}!sub@{sub}}
\index{sub@{sub}!operateurs.c@{operateurs.\-c}}
\subsubsection[{sub}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf sub} (
\begin{DoxyParamCaption}
\item[{short $\ast$}]{reg, }
\item[{short $\ast$}]{memd, }
\item[{short $\ast$}]{\-P\-C, }
\item[{short $\ast$}]{\-S\-R}
\end{DoxyParamCaption}
)}}\label{operateurs_8c_a67f196dd3656c5cbbe64452cca2873eb}
\-Fonction \-S\-U\-B \-: \-Soustrait au registre destination la valeur indiqu�e et stocke le r�sultat dans le registre destination.

\-Fonctionne dans quatre modes diff�rents \-:
\begin{DoxyItemize}
\item \-Registre-\/\-Registre
\item \-Registre-\/\-Imm�diat
\item \-Registre-\/\-Direct
\item \-Registre-\/\-Indirect \-Les modes \-Registre-\/\-Imm�diat et \-Registre-\/\-Direct peuvent contenir deux ou trois mots.
\end{DoxyItemize}

\-Param�tres \-: + reg \-: r�f�rence au banc de registres. \-D�clar� et initialis� dans le main. + memd \-: r�f�rence � la m�moire de donn�es. \-D�clar� et initialis� dans le main. + \-P\-C \-: r�f�rence � l'adresse de l'instruction en cours d'execution. + \-S\-R \-: r�f�rence au r�sultat de la derni�re op�ration de calcul 